<!DOCTYPE html>
<html>
<head>
<title>GeoGebra dynamic worksheet</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>

<body>
   
    <script type="text/javascript" language="javascript" src="web3d/web3d.nocache.js"></script>
    <article class="geogebraweb" data-param-width="500" data-param-height="500" 
    data-param-enableLabelDrags="false" data-param-enableShiftDragZoom="false"  data-param-showLogging="true" 
    style="border: 1px solid black; display:inline-block;"
    data-param-prerelease="false" 
    data-param-showToolbar="false"
    data-param-showAlgebraInput="false"
    data-param-showMenubar="false"
    data-param-useBrowserForJS="true"
    data-param-ggbBase64="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"
    data-param-customToolbar="0 | 60 | 61 | 52 | 17 | 25 | 26"
    data-param-id="applet1">
    </article>
	
	<script>
	
	function log(dpi, exportScale) {
		applet1.evalCommand('text = "'+dpi+'dpi\\\\nresolution='+(500*exportScale)+'pixels"');
	}
	
	function writePNGtoFile(filename, exportScale, transparent, dpi) {
		log(dpi, exportScale);
		applet1.writePNGtoFile(filename, exportScale, transparent, dpi);
	}
	
	function getPNGBase64(exportScale, transparent, dpi, copyToClipboard) {
		log(dpi, exportScale);
		document.getElementById("image").src="data:image/png;base64," + applet1.getPNGBase64(exportScale, transparent, dpi, copyToClipboard);
	
	}
	
	</script>
	
	  <input type="button" value="dpi not set" onClick="writePNGtoFile('nodpi.png', 1, false);" />
	  <input type="button" value="72dpi" onClick="writePNGtoFile('72dpi.png', 1, false, 72);" />
	  <input type="button" value="150dpi" onClick="writePNGtoFile('150dpi.png', 1, false, 150);" />
	  <input type="button" value="300dpi" onClick="writePNGtoFile('300dpi.png', 1, false, 300);" />
	  <input type="button" value="600dpi" onClick="writePNGtoFile('600dpi.png', 1, false, 600);" />
	  <input type="button" value="600dpi (scale 2)" onClick="writePNGtoFile('600dpi2.png', 2, false, 600);" />
	  <input type="button" value="600dpi (scale 3)" onClick="writePNGtoFile('600dpi3.png', 3, false, 600);" />
	  <br/>
	  <input type="button" value="dpi not set" onClick='getPNGBase64(1, false, -1, false);' />
	  <input type="button" value="72dpi" onClick='getPNGBase64(1, false, 72, false);' />
	  <input type="button" value="150dpi" onClick='getPNGBase64(1, false, 150, false);' />
	  <input type="button" value="300dpi" onClick='getPNGBase64(1, false, 300, false);' />
	  <input type="button" value="600dpi" onClick='getPNGBase64(1, false, 600, false);' />
	  <input type="button" value="600dpi (scale 2)" onClick='getPNGBase64(2, false, 600, false);' />
	  <input type="button" value="600dpi (scale 3)" onClick='getPNGBase64(3, false, 600, false);' />
		<br/>
	  <img id="image"></img>

   
</html>
